<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>What to read next &mdash; Django 1.7.8.dev20150401230226 documentation</title>
    
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '1.7.8.dev20150401230226',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="top" title="Django 1.7.8.dev20150401230226 documentation" href="../index.html" />
    <link rel="up" title="Getting started" href="index.html" />
    <link rel="next" title="Writing your first patch for Django" href="contributing.html" />
    <link rel="prev" title="Advanced tutorial: How to write reusable apps" href="reusable-apps.html" />



 
<script type="text/javascript" src="../templatebuiltins.js"></script>
<script type="text/javascript">
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "../ref/templates/builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);
</script>


  </head>
  <body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../index.html">Django 1.7.8.dev20150401230226 documentation</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../index.html">Home</a>  |
        <a title="Table of contents" href="../contents.html">Table of contents</a>  |
        <a title="Global index" href="../genindex.html">Index</a>  |
        <a title="Module index" href="../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="reusable-apps.html" title="Advanced tutorial: How to write reusable apps">previous</a>
     |
    <a href="index.html" title="Getting started" accesskey="U">up</a>
   |
    <a href="contributing.html" title="Writing your first patch for Django">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="intro-whatsnext">
            
  <div class="section" id="s-what-to-read-next">
<span id="what-to-read-next"></span><h1>What to read next<a class="headerlink" href="#what-to-read-next" title="Permalink to this headline">¶</a></h1>
<p>So you&#8217;ve read all the <a class="reference internal" href="index.html"><em>introductory material</em></a> and have
decided you&#8217;d like to keep using Django. We&#8217;ve only just scratched the surface
with this intro (in fact, if you&#8217;ve read every single word, you&#8217;ve read about
5% of the overall documentation).</p>
<p>So what&#8217;s next?</p>
<p>Well, we&#8217;ve always been big fans of learning by doing. At this point you should
know enough to start a project of your own and start fooling around. As you need
to learn new tricks, come back to the documentation.</p>
<p>We&#8217;ve put a lot of effort into making Django&#8217;s documentation useful, easy to
read and as complete as possible. The rest of this document explains more about
how the documentation works so that you can get the most out of it.</p>
<p>(Yes, this is documentation about documentation. Rest assured we have no plans
to write a document about how to read the document about documentation.)</p>
<div class="section" id="s-finding-documentation">
<span id="finding-documentation"></span><h2>Finding documentation<a class="headerlink" href="#finding-documentation" title="Permalink to this headline">¶</a></h2>
<p>Django&#8217;s got a <em>lot</em> of documentation &#8211; almost 450,000 words and counting &#8211;
so finding what you need can sometimes be tricky. A few good places to start
are the <a class="reference internal" href="../search.html"><em>Search Page</em></a> and the <a class="reference internal" href="../genindex.html"><em>Index</em></a>.</p>
<p>Or you can just browse around!</p>
</div>
<div class="section" id="s-how-the-documentation-is-organized">
<span id="how-the-documentation-is-organized"></span><h2>How the documentation is organized<a class="headerlink" href="#how-the-documentation-is-organized" title="Permalink to this headline">¶</a></h2>
<p>Django&#8217;s main documentation is broken up into &#8220;chunks&#8221; designed to fill
different needs:</p>
<ul>
<li><p class="first">The <a class="reference internal" href="index.html"><em>introductory material</em></a> is designed for people new
to Django &#8211; or to Web development in general. It doesn&#8217;t cover anything
in depth, but instead gives a high-level overview of how developing in
Django &#8220;feels&#8221;.</p>
</li>
<li><p class="first">The <a class="reference internal" href="../topics/index.html"><em>topic guides</em></a>, on the other hand, dive deep into
individual parts of Django. There are complete guides to Django&#8217;s
<a class="reference internal" href="../topics/db/index.html"><em>model system</em></a>, <a class="reference internal" href="../topics/templates.html"><em>template engine</em></a>, <a class="reference internal" href="../topics/forms/index.html"><em>forms framework</em></a>, and much
more.</p>
<p>This is probably where you&#8217;ll want to spend most of your time; if you work
your way through these guides you should come out knowing pretty much
everything there is to know about Django.</p>
</li>
<li><p class="first">Web development is often broad, not deep &#8211; problems span many domains.
We&#8217;ve written a set of <a class="reference internal" href="../howto/index.html"><em>how-to guides</em></a> that answer
common &#8220;How do I ...?&#8221; questions. Here you&#8217;ll find information about
<a class="reference internal" href="../howto/outputting-pdf.html"><em>generating PDFs with Django</em></a>, <a class="reference internal" href="../howto/custom-template-tags.html"><em>writing
custom template tags</em></a>, and more.</p>
<p>Answers to really common questions can also be found in the <a class="reference internal" href="../faq/index.html"><em>FAQ</em></a>.</p>
</li>
<li><p class="first">The guides and how-to&#8217;s don&#8217;t cover every single class, function, and
method available in Django &#8211; that would be overwhelming when you&#8217;re
trying to learn. Instead, details about individual classes, functions,
methods, and modules are kept in the <a class="reference internal" href="../ref/index.html"><em>reference</em></a>. This is
where you&#8217;ll turn to find the details of a particular function or
whatever you need.</p>
</li>
<li><p class="first">If you are interested in deploying a project for public use, our docs have
<a class="reference internal" href="../howto/deployment/index.html"><em>several guides</em></a> for various deployment
setups as well as a <a class="reference internal" href="../howto/deployment/checklist.html"><em>deployment checklist</em></a>
for some things you&#8217;ll need to think about.</p>
</li>
<li><p class="first">Finally, there&#8217;s some &#8220;specialized&#8221; documentation not usually relevant to
most developers. This includes the <a class="reference internal" href="../releases/index.html"><em>release notes</em></a> and
<a class="reference internal" href="../internals/index.html"><em>internals documentation</em></a> for those who want to add
code to Django itself, and a <a class="reference internal" href="../misc/index.html"><em>few other things that simply don&#8217;t fit
elsewhere</em></a>.</p>
</li>
</ul>
</div>
<div class="section" id="s-how-documentation-is-updated">
<span id="how-documentation-is-updated"></span><h2>How documentation is updated<a class="headerlink" href="#how-documentation-is-updated" title="Permalink to this headline">¶</a></h2>
<p>Just as the Django code base is developed and improved on a daily basis, our
documentation is consistently improving. We improve documentation for several
reasons:</p>
<ul class="simple">
<li>To make content fixes, such as grammar/typo corrections.</li>
<li>To add information and/or examples to existing sections that need to be
expanded.</li>
<li>To document Django features that aren&#8217;t yet documented. (The list of
such features is shrinking but exists nonetheless.)</li>
<li>To add documentation for new features as new features get added, or as
Django APIs or behaviors change.</li>
</ul>
<p>Django&#8217;s documentation is kept in the same source control system as its code. It
lives in the <a class="reference external" href="https://github.com/django/django/tree/master/docs">docs</a> directory of our Git repository. Each document online is a
separate text file in the repository.</p>
</div>
<div class="section" id="s-where-to-get-it">
<span id="where-to-get-it"></span><h2>Where to get it<a class="headerlink" href="#where-to-get-it" title="Permalink to this headline">¶</a></h2>
<p>You can read Django documentation in several ways. They are, in order of
preference:</p>
<div class="section" id="s-on-the-web">
<span id="on-the-web"></span><h3>On the Web<a class="headerlink" href="#on-the-web" title="Permalink to this headline">¶</a></h3>
<p>The most recent version of the Django documentation lives at
<a class="reference external" href="https://docs.djangoproject.com/en/dev/">https://docs.djangoproject.com/en/dev/</a>. These HTML pages are generated
automatically from the text files in source control. That means they reflect the
&#8220;latest and greatest&#8221; in Django &#8211; they include the very latest corrections and
additions, and they discuss the latest Django features, which may only be
available to users of the Django development version. (See &#8220;Differences between
versions&#8221; below.)</p>
<p>We encourage you to help improve the docs by submitting changes, corrections and
suggestions in the <a class="reference external" href="https://code.djangoproject.com/newticket?component=Documentation">ticket system</a>. The Django developers actively monitor the
ticket system and use your feedback to improve the documentation for everybody.</p>
<p>Note, however, that tickets should explicitly relate to the documentation,
rather than asking broad tech-support questions. If you need help with your
particular Django setup, try the <a class="reference internal" href="../internals/mailing-lists.html#django-users-mailing-list"><em>django-users</em></a> mailing list or the <a class="reference external" href="irc://irc.freenode.net/django">#django
IRC channel</a> instead.</p>
</div>
<div class="section" id="s-in-plain-text">
<span id="in-plain-text"></span><h3>In plain text<a class="headerlink" href="#in-plain-text" title="Permalink to this headline">¶</a></h3>
<p>For offline reading, or just for convenience, you can read the Django
documentation in plain text.</p>
<p>If you&#8217;re using an official release of Django, note that the zipped package
(tarball) of the code includes a <tt class="docutils literal"><span class="pre">docs/</span></tt> directory, which contains all the
documentation for that release.</p>
<p>If you&#8217;re using the development version of Django (aka &#8220;trunk&#8221;), note that the
<tt class="docutils literal"><span class="pre">docs/</span></tt> directory contains all of the documentation. You can update your
Git checkout to get the latest changes.</p>
<p>One low-tech way of taking advantage of the text documentation is by using the
Unix <tt class="docutils literal"><span class="pre">grep</span></tt> utility to search for a phrase in all of the documentation. For
example, this will show you each mention of the phrase &#8220;max_length&#8221; in any
Django document:</p>
<div class="highlight-console"><div class="highlight"><pre><span class="gp">$</span> grep -r max_length /path/to/django/docs/
</pre></div>
</div>
</div>
<div class="section" id="s-as-html-locally">
<span id="as-html-locally"></span><h3>As HTML, locally<a class="headerlink" href="#as-html-locally" title="Permalink to this headline">¶</a></h3>
<p>You can get a local copy of the HTML documentation following a few easy steps:</p>
<ul>
<li><p class="first">Django&#8217;s documentation uses a system called <a class="reference external" href="http://sphinx-doc.org/">Sphinx</a> to convert from
plain text to HTML. You&#8217;ll need to install Sphinx by either downloading
and installing the package from the Sphinx Web site, or with <tt class="docutils literal"><span class="pre">pip</span></tt>:</p>
<div class="highlight-console"><div class="highlight"><pre><span class="gp">$</span> sudo pip install Sphinx
</pre></div>
</div>
</li>
<li><p class="first">Then, just use the included <tt class="docutils literal"><span class="pre">Makefile</span></tt> to turn the documentation into
HTML:</p>
<div class="highlight-console"><div class="highlight"><pre><span class="gp">$</span> <span class="nb">cd </span>path/to/django/docs
<span class="gp">$</span> make html
</pre></div>
</div>
<p>You&#8217;ll need <a class="reference external" href="http://www.gnu.org/software/make/">GNU Make</a> installed for this.</p>
<p>If you&#8217;re on Windows you can alternatively use the included batch file:</p>
<div class="highlight-bat"><div class="highlight"><pre><span class="k">cd</span> path\to\django\docs
make.bat html
</pre></div>
</div>
</li>
<li><p class="first">The HTML documentation will be placed in <tt class="docutils literal"><span class="pre">docs/_build/html</span></tt>.</p>
</li>
</ul>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Generation of the Django documentation will work with Sphinx version 0.6
or newer, but we recommend going straight to Sphinx 1.0.2 or newer.</p>
</div>
</div>
</div>
<div class="section" id="s-differences-between-versions">
<span id="s-differences-between-doc-versions"></span><span id="differences-between-versions"></span><span id="differences-between-doc-versions"></span><h2>Differences between versions<a class="headerlink" href="#differences-between-versions" title="Permalink to this headline">¶</a></h2>
<p>As previously mentioned, the text documentation in our Git repository
contains the &#8220;latest and greatest&#8221; changes and additions. These changes often
include documentation of new features added in the Django development version
&#8211; the Git (&#8220;trunk&#8221;) version of Django. For that reason, it&#8217;s worth
pointing out our policy on keeping straight the documentation for various
versions of the framework.</p>
<p>We follow this policy:</p>
<ul class="simple">
<li>The primary documentation on djangoproject.com is an HTML version of the
latest docs in Git. These docs always correspond to the latest
official Django release, plus whatever features we&#8217;ve added/changed in
the framework <em>since</em> the latest release.</li>
<li>As we add features to Django&#8217;s development version, we try to update the
documentation in the same Git commit transaction.</li>
<li>To distinguish feature changes/additions in the docs, we use the phrase:
&#8220;New in version X.Y&#8221;, being X.Y the next release version (hence, the one
being developed).</li>
<li>Documentation fixes and improvements may be backported to the last release
branch, at the discretion of the committer, however, once a version of
Django is <a class="reference internal" href="../internals/release-process.html#backwards-compatibility-policy"><em>no longer supported</em></a>, that
version of the docs won&#8217;t get any further updates.</li>
<li>The <a class="reference external" href="https://docs.djangoproject.com/en/dev/">main documentation Web page</a> includes links to documentation for
all previous versions. Be sure you are using the version of the docs
corresponding to the version of Django you are using!</li>
</ul>
</div>
</div>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">What to read next</a><ul>
<li><a class="reference internal" href="#finding-documentation">Finding documentation</a></li>
<li><a class="reference internal" href="#how-the-documentation-is-organized">How the documentation is organized</a></li>
<li><a class="reference internal" href="#how-documentation-is-updated">How documentation is updated</a></li>
<li><a class="reference internal" href="#where-to-get-it">Where to get it</a><ul>
<li><a class="reference internal" href="#on-the-web">On the Web</a></li>
<li><a class="reference internal" href="#in-plain-text">In plain text</a></li>
<li><a class="reference internal" href="#as-html-locally">As HTML, locally</a></li>
</ul>
</li>
<li><a class="reference internal" href="#differences-between-versions">Differences between versions</a></li>
</ul>
</li>
</ul>

  <h3>Browse</h3>
  <ul>
    
      <li>Prev: <a href="reusable-apps.html">Advanced tutorial: How to write reusable apps</a></li>
    
    
      <li>Next: <a href="contributing.html">Writing your first patch for Django</a></li>
    
  </ul>
  <h3>You are here:</h3>
  <ul>
      <li>
        <a href="../index.html">Django 1.7.8.dev20150401230226 documentation</a>
        
          <ul><li><a href="index.html">Getting started</a>
        
        <ul><li>What to read next</li></ul>
        </li></ul>
      </li>
  </ul>

  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="../_sources/intro/whatsnext.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">Apr 02, 2015</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="reusable-apps.html" title="Advanced tutorial: How to write reusable apps">previous</a>
     |
    <a href="index.html" title="Getting started" accesskey="U">up</a>
   |
    <a href="contributing.html" title="Writing your first patch for Django">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>